Revert "arm/acpi: Configure SPI interrupt type and route to Dom0 dynamically"
authorStefano Stabellini <sstabellini@kernel.org>
Wed, 1 Jun 2016 09:54:45 +0000 (10:54 +0100)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 1 Jun 2016 10:10:45 +0000 (11:10 +0100)
commit909bd140bfbfd3c762ae7ebf2bb41da00842c77d
tree4d6ea98b45ebe9b8f1fb199af24f9ca05538e8bb
parentbbfd2d6ccb31a3aeea49c8f9c7884792ddc26e3b
Revert "arm/acpi: Configure SPI interrupt type and route to Dom0 dynamically"

This reverts commit 9d77b3c01d1261ce17c10097a1b393f2893ca657.

The commit is causing a dead loop inside the spinlock function.
spinlocks in Xen are not recursive. Re-acquiring a spinlock that was
already taken by the calling cpu leads to deadlock. This happens
whenever dom0 writes to GICD regs ISENABLER/ICENABLER.

DOM0 writes GICD_ISENABLER/GICD_ICENABLER
  vgic_v3_distr_common_mmio_write()
    vgic_lock_rank()  -->  acquiring first time
      vgic_enable_irqs()
        route_irq_to_guest()
          gic_route_irq_to_guest()
            vgic_get_target_vcpu()
              vgic_lock_rank()  -->  attemping acquired lock

Reported-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/vgic.c